import axios from 'axios'
// import { ElMessage } from 'element-plus'
import {
  // getRefreshToken,
  // setToken,
  clearAuthTokens,
  // setToken
} from './auth'
import { useAdminStore } from '@/stores/admin'

// 创建axios实例
const instance = axios.create({
  baseURL: import.meta.env.VITE_APP_BASE_API,
  timeout: 15000
})

// 获取token的函数（兼容Pinia和localStorage）
const getAdminToken = () => {
  try {
    const adminStore = useAdminStore()
    return adminStore.token || localStorage.getItem('adminToken') || ''
  } catch {
    return localStorage.getItem('adminToken') || ''
  }
}

// 请求拦截器
instance.interceptors.request.use(config => {
  const token = getAdminToken()
  if (token) {
    config.headers.Authorization = `Bearer ${token}`
  }
  return config
}, error => Promise.reject(error))

// 响应拦截器 - 简化版（无Token刷新逻辑）
instance.interceptors.response.use(
  response => response,
  error => {
    if (error.response?.status === 401) {
      // Token无效，直接清除并跳转到登录页
      clearAuthTokens()
      // window.location.href = '/login'  // 根据你的登录页路径调整
    }
    return Promise.reject(error)
  }
)


/**
 * 简化后的通用请求方法
 * @param {string} method 请求方法 (get/post/put/delete等)
 * @param {string} url 请求地址
 * @param {Object} [data] 请求体数据
 * @param {Object} [params] URL参数
 * @param {Object} [config] 额外配置
 * @returns {Promise}
 */
export const request = (method, url, data = null, params = null, config = {}) => {
  return instance({
    method: method.toLowerCase(),
    url,
    data,
    params,
    ...config
  })
}